iT邦幫忙

functional programming相關文章
共有 358 則文章

技術 31. 結語

對於看到這篇的讀者,請讓我在此感謝你們,這篇算是完賽心得跟聊一下我自己對於 Effect 的想法,不過在開始前,我想先推薦幾個東西 EffectPatern...

技術 30. Effect 生態系: `@effect/ai` Effect 也有 ai

這篇要介紹的是另一個 Effect 官方的套件 @effect/ai ,這個套件可以幫助你使用 AI ,同時你的程式不需要知道不同家 AI 的 sdk 之間的不...

鐵人賽 Software Development DAY 30

技術 [Day 30] 系列文總結與完賽心得

這是第二次參與鐵人賽,還是很感動終於完成! 系列文總結 先來回顧一下此次系列文包含的主題: [Day 01] 系列文動機與大綱 Functional...

鐵人賽 Software Development DAY 30

技術 29. Effect 生態系: `@effect/platform` 不同平台也能有一樣的 API

這篇要來介紹的是 @effect/platform , Effect 將不同平台的 API ,主要是 Browser 跟 Node.js 中可以共通的部份抽出來...

鐵人賽 Software Development DAY 29

技術 [Day 29] 我們可能見過的 Functional Programming

前言 FP 系列的最後,想進一步看看,在軟體設計的世界裡,到底哪些東西和 FP 相關,哪些技術和工具其實背後借鏡了 FP 的原理,藉此將 FP 的抽象概念與實...

鐵人賽 Software Development DAY 29

技術 28. 不可變的資料型態們: Array, Record, HashSet, HashMap

這篇要來講 Effect 內的一些資料型態,不過有些你可能在我們之前的一些範例中都見到了,比如 Array ,我們之前就用過 Array.map ,不過在那之前...

鐵人賽 Software Development DAY 28

技術 27. Match: tag 與模式比對

這篇我們要來看 Effect 裡怎麼做模式比對,模式比對是我覺得一個非常方便的功能,如果有看過我之前寫的文章,你可能會知道我是個 Rust 的愛好者, Rust...

鐵人賽 Software Development DAY 27

技術 [Day 27] RxJS 簡介 (1)

前言 今天要介紹的是我期待已久的 RxJS! RxJS 博大精深,甚至可以用一整個鐵人賽系列文來介紹(在此推推 30 天精通 RxJS和打通 RxJS 任督二...

鐵人賽 Software Development DAY 27

技術 26. Effect schema:資料格式驗證

這篇要來介紹的是 Effect 內建的資料格式的驗證工具 Schema ,另外我之前也提到,我個人平常還是偏好使用 zod 這個老牌的格式驗證為主,這篇我們一起...

鐵人賽 Software Development DAY 26

技術 Ch 25. 用不同的角度來看待邏輯與資料

還記得我們在新手村裡學會這幾句話嗎: 程式主要可以分成邏輯(流程)與資料 函式 是把 邏輯(流程) 包起來的自動販賣機 而隨著愈來愈多人寫程式,在歷史發...

鐵人賽 Software Development DAY 26

技術 25. Effect 與 Observability

這篇要來介紹 Effect 與 Observability , Observability 中文叫可觀測性,意思是你的程式的執行的過程是可以被觀察的,特別是在分...

鐵人賽 Software Development DAY 25

技術 24. Effect logging

這篇來介紹的是在 Effect 裡面怎麼寫 log ,不知道各位平常有沒有習慣在寫 log ,如果程式有 log 的話,可以幫助我們了解程式現在的狀態,在除錯上...

鐵人賽 Software Development DAY 24

技術 [Day 24] Applicative Functor (2):定律與應用範例

前言 昨天認識了什麼是 Applicative,今天會再介紹 Applicative 要遵守的定律,以及更多應用範例~ Applicative 的定律 就像...

鐵人賽 Software Development DAY 24

技術 23. Effect 應用 2 :用 orpc 與 Effect 打造強韌的 API 介面

這篇要來看 Effect 在後端又可以怎麼樣的使用,這次我們會搭配 orpc 這個 RPC 的套件來一起使用, orpc 可以幫助我們寫出 type-safet...

鐵人賽 Software Development DAY 23

技術 [Day 23] Applicative Functor (1):應用被包裹的函數

前言 在前面的文章中,我們認識了 Functor 和 Monad。Functor 透過 map 方法,讓我們能將一個普通的函數應用到被包裹在 context(...

鐵人賽 Software Development DAY 23

技術 22. Effect 應用 1 : 如何在 React 中呼叫 Effect 的程式

這篇要來介紹怎麼在實際的環境中使用 Effect ,這次介紹的是在 React 中會怎麼使用,除了簡單的情境我們可以直接用 Efect.runPromise 外...

鐵人賽 Software Development DAY 22

技術 [Day 22] Monad 入門 (2):核心概念與定律

前言 在上一篇文章中,我們學會了 Monad 的實用工具 chain,它透過結合 map 和 join 來解決巢狀容器問題,讓我們的函數組合保持流暢。今天會再...

鐵人賽 Software Development DAY 22

技術 21. Effect runtime :自訂如何執行 effect

這邊要來講的是 Effect 的 runtime ,不要懷疑,就是執行 Effect 的 fiber 的那個runtime ,你可能會覺得這有什麼好講的,我們平...

鐵人賽 Software Development DAY 21

技術 [Day 21] Monad 入門 (1):撫平巢狀的洋蔥

前言 在過去幾篇文章中,我們認識了 Functor 這個 FP 工具,透過 .map,我們學會了如何在一個「容器」或「上下文 (context)」內,對值進行...

鐵人賽 Software Development DAY 20

技術 [Day 20] Task:處理非同步副作用

前言 昨天的文章中,我們認識了如何用 IO 這容器延後副作用的執行,掌握了 IO 的核心思想後,我們就可以將同樣的原則應用到一個更複雜、更常見的領域:非同步操...

鐵人賽 Software Development DAY 21

技術 20. Effect 資源管理與作用域

這篇來要講個我個人認為挺有趣的東西,資源管理,一般如果是在前端,需要資源管理的情況可能比較沒有那麼多,因為網頁重整了就什麼都沒了,這可能是後端會比較需要的,不過...

鐵人賽 Software Development DAY 20

技術 19. Effect 實戰分享 4: 取得看版資料

這次要來分享的是之前實作過的一個比較複雜的介面:看版,以及在裡面我們是如何用 Effect 協助我們取得資料的 什麼是看版 (圖片來源 wiki) 如果你平常有...

鐵人賽 Software Development DAY 19

技術 [Day 19] IO:處理同步副作用

前言 在前幾天的文章中,我們學會如何用 Maybe 容器處理空值,用 Either 容器處理錯誤路徑,透過容器這種把值包起來的方式,我們可以打造可預測、可靠的...

鐵人賽 Software Development DAY 19

技術 18. Request and batching

這篇我們要來看 Effect 中如何做到 batch request ,但為什麼我們會需要 batch request 呢?我之前正好有寫過類似的文章,有興趣的...

鐵人賽 Software Development DAY 18

技術 [Day 18] Either Functor:處理錯誤

前言 在上一篇 Maybe Functor 的文章中,可以看到 Maybe 讓我們的程式不會因為 null 或 undefined 而出錯、管線斷裂,即使物件...

鐵人賽 Software Development DAY 18

技術 17. Effect 的 concurrency 調度器: Fiber 簡介

這篇我們要來看 Effect 是怎麼調度我們的程式的執行流程的,如果你之前有碰過一些比較偏向系統程式的東西,你可能會知道, fiber 指的是協程,意即一種需要...

鐵人賽 Software Development DAY 17

技術 [Day 17] Maybe Functor:處理空值

前言 上一篇文章介紹了 Functor:它是一個容器,包裹著一個值,並提供一個 map 方法,讓我們能可靠地對這個值套用函式,無論它究竟是什麼。但如果我們處理...

鐵人賽 Software Development DAY 17

技術 16. 再看 concurrency:使用 fork 在背景執行

這篇要來稍微看一下 Effect 到底是如何實作的,同時我們會先來看到,如何在「背景」執行 Effect Effect.fork 先來看今天的主角, Effec...

鐵人賽 Software Development DAY 16

技術 [Day 16] Functor:操作容器內的值

前言 上一篇我們初步認識了 Monoid,學到「組合」其實是程式設計裡無處不在的基礎結構。 現在回到 Day 14 提過的容器,透過將值(value)包裝在一...

鐵人賽 Software Development DAY 16

技術 15. Effect 實戰分享 3: 資料遷移

這篇要來分享的是之前將 Effect 用在資料遷移的經驗,其實這篇就是「8. Effect 實戰分享 1 :資料清理」的後續,稍微前情提要一下,你拿到了一個老舊...